﻿using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;
namespace Siderys.Blog.VirtualEarth.DataMap
{
    public class Fachada
    {

        /// <summary>
        /// 
        /// </summary>
        /// <param name="pNombreEstado"></param>
        /// <returns></returns>
        public static List<ElementoMapa> GetPuntosMapa(string pNombreLista)
        {
            List<ElementoMapa> lRetorno = null;
            ElementoMapa lElemento = null;
            SPListItemCollection lPuntosCol = null;
            SPQuery lQuery = null;
            SPList lListPuntos = SPContext.Current.Web.Lists[pNombreLista];

            lQuery = new SPQuery();
            lQuery.Query = "";
            lQuery.ViewFields = "<FieldRef Name='ID' /><FieldRef Name='NamePoint' /><FieldRef Name='Latitude' /><FieldRef Name='Longitude' /><FieldRef Name='AddressPoint' /><FieldRef Name='PhonePoint' />";

            lPuntosCol = lListPuntos.GetItems(lQuery);

            if (lPuntosCol.Count > 0)
            {
                lRetorno = new List<ElementoMapa>();
                foreach (SPListItem lPunto in lPuntosCol)
                {
                    lElemento = new ElementoMapa();

                    if (lPunto["ID"] != null)
                    {
                        lElemento.Id = Convert.ToInt32(lPunto["ID"].ToString());
                    }
                    if (lPunto["NamePoint"] != null)
                    {
                        lElemento.Nombre = lPunto["NamePoint"].ToString();
                    }
                    if (lPunto["Latitude"] != null)
                    {
                        lElemento.Latitud = lPunto["Latitude"].ToString();
                    }
                    if (lPunto["Longitude"] != null)
                    {
                        lElemento.Longitud = lPunto["Longitude"].ToString();
                    }
                    if (lPunto["AddressPoint"] != null)
                    {
                        lElemento.Direccion1 = lPunto["AddressPoint"].ToString();
                    }
                    if (lPunto["PhonePoint"] != null)
                    {
                        lElemento.Telefono = lPunto["PhonePoint"].ToString();
                    }
                    lRetorno.Add(lElemento);
                }
            }
            return lRetorno;
        }

        public static ElementoMapa GetHPuntoMapaPorId(string pIdPuntoMapa, string pNombreLista)
        {
            ElementoMapa lRetorno = null;
            SPListItemCollection lPuntosCol = null;
            SPListItem lPunto = null;
            SPQuery lQuery = null;
            SPList lListPuntos = SPContext.Current.Web.Lists[pNombreLista];

            lQuery = new SPQuery();
            lQuery.Query = "<Where><Eq><FieldRef Name='ID' /><Value Type='Counter'>" + pIdPuntoMapa + "</Value></Eq></Where>";
            lQuery.ViewFields = "<FieldRef Name='ID' /><FieldRef Name='NamePoint' /><FieldRef Name='Latitude' /><FieldRef Name='Longitude' /><FieldRef Name='AddressPoint' /><FieldRef Name='PhonePoint' />";

            lPuntosCol = lListPuntos.GetItems(lQuery);

            if (lPuntosCol.Count > 0)
            {
                lPunto = lPuntosCol[0];
                lRetorno = new ElementoMapa();

                if (lPunto["ID"] != null)
                {
                    lRetorno.Id = Convert.ToInt32(lPunto["ID"].ToString());
                }
                if (lPunto["NamePoint"] != null)
                {
                    lRetorno.Nombre = lPunto["NamePoint"].ToString();
                }
                if (lPunto["Latitude"] != null)
                {
                    lRetorno.Latitud = lPunto["Latitude"].ToString();
                }
                if (lPunto["Longitude"] != null)
                {
                    lRetorno.Longitud = lPunto["Longitude"].ToString();
                }
                if (lPunto["AddressPoint"] != null)
                {
                    lRetorno.Direccion1 = lPunto["AddressPoint"].ToString();
                }
                if (lPunto["PhonePoint"] != null)
                {
                    lRetorno.Telefono = lPunto["PhonePoint"].ToString();
                }
            }
            return lRetorno;
        }
    }
}
